
clear
clc
close all
PTime=[2.5 3.6 4.0 2.7 1.5 4.4 4.0;3.7 2.9	4.0	2.9	2.6	2.2	3.9;2.1	3.1	2.0	3.0	1.2	2.7	3.5;2.5	2.5	4.0	1.4	1.7	3.6	4.9;4.0	2.0	4.0	2.9	1.6	2.2	2.5;2.4	3.2	4.0	2.2	2.6	2.0	4.2;4.0	3.5	3.0	1.8	1.4	2.5	2.0;1.3	2.3	2.0	1.6	2.1	2.9	3.6;3.1	3.4	4.0	1.2	2.4	4.3	4.0;1.6	2.9	3.0	1.7	2.6	4.5	2.0;3.7	2.5	4.0	1.4	2.9	4.3	3.9;2.7	3.7	4.0	1.7	1.2	3.0	3.4;1.3	4.0	3.0	2.3	2.2	4.1	4.7;];
[PNumber,MNumber]=size(PTime);  
%%  参数设置

SearchAgents = 40;                        % population members 
Max_iterations = 100;                    % maximum number of iteration
lb = 0;
ub = 1;
dim = 54;
fobj = @Caltime;
%%  调用算法
[Alpha_score,Alpha_pos,FTTA_Convergence_curve]=FTTA(SearchAgents,Max_iterations,lb,ub,dim,fobj,PTime); % 调用FTTA算法
[SA_score,SA_pos,SA_Convergence_curve]=SA(Max_iterations,lb,ub,dim,PTime); % 调用SA算法
SA_score = - SA_score;
[GA_score,GA_pos,GA_Convergence_curve]=GA(SearchAgents,Max_iterations,PTime); % 调用GA算法

CNT=15;
k=round(linspace(1,Max_iterations,CNT)); %随机选CNT个点
% 注意：如果收敛曲线画出来的点很少，随机点很稀疏，说明点取少了，这时应增加取点的数量，100、200、300等，逐渐增加
% 相反，如果收敛曲线上的随机点非常密集，说明点取多了，此时要减少取点数量
iter=1:1:Max_iterations;
plot(iter(k),SA_Convergence_curve(k),'b-*','linewidth',1);
hold on;
plot(iter(k),FTTA_Convergence_curve(k),'r->','linewidth',1);
hold on;
plot(iter(k),GA_Convergence_curve(k),'g-d','linewidth',1);

grid on;
title('Convergence curve','FontName', 'Times New Roman', 'FontSize', 12)
xlabel('iterations','FontName', 'Times New Roman', 'FontSize', 12);
ylabel('Fitness value','FontName', 'Times New Roman', 'FontSize', 12);
box on
legend('SA','FTTA','GA')
set (gcf,'position', [300,300,800,330],'FontName', 'Times New Roman', 'FontSize', 12,'color', 'w');


[t_Cost,Mspan,Scheme,BginTime]=my_cal(PTime,Alpha_pos);


